package org.example.project_12.entity;

import lombok.*;
import java.time.LocalDateTime;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Document {
    
    private Long id;
    
    /**
     * 文档标题
     */
    private String title;
    
    /**
     * 文档内容
     */
    private String content;
    
    /**
     * 作者ID
     */
    private Long authorId;
    
    /**
     * 所属空间ID（可为空，表示个人文档）
     */
    private Long spaceId;
    
    /**
     * 是否公开
     */
    private Boolean isPublic;
    
    /**
     * 文档状态: PRIVATE, PENDING, PUBLIC
     */
    private String status;
    
    /**
     * 锁定用户ID（用于并发控制）
     */
    private Long lockedBy;
    
    /**
     * 创建时间
     */
    private LocalDateTime createdAt;
    
    /**
     * 最后更新时间
     */
    private LocalDateTime updatedAt;
    
    public void onCreate() {
        this.createdAt = LocalDateTime.now();
        this.updatedAt = this.createdAt;
    }
    
    public void onUpdate() {
        this.updatedAt = LocalDateTime.now();
    }

    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }
} 